#Basic inheritance example
class Base:
    def __init__(self):
        print('Base initializer')

    def f(self):
        print('Base.f()')

b = Base()
b.f()


class Sub(Base): 
    pass

s = Sub()
s.f()


class Sub(Base): 
    def f(self):
        print('Sub.f()')

s = Sub()
s.f()


#Subclass initializers
class Sub(Base):
    def __init__(self):
        print('Sub initializer')

    def f(self):
        print('Sub.f()')

s = Sub()


class Sub(Base):
    def  __init__(self): 
        super().__init__() 
        print('Sub initializer')

    def f(self):
        print('Sub.f()')

s = Sub()